package com.techsoul.module.generator.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.techsoul.module.generator.pojo.param.GenTableColumnSaveParam;
import com.techsoul.module.generator.pojo.param.GenTableColumnSearchParam;
import com.techsoul.module.generator.pojo.vo.GenTableColumnVo;
import com.techsoul.module.generator.pojo.vo.TableColumnVo;

import java.util.List;

/**
 * 业务字段 服务层
 *
 * @author liuen
 */
public interface IGenTableColumnService {

    /**
     * 新增
     *
     * @param params
     * @return
     */
    String insert(GenTableColumnSaveParam params);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    Integer delete(String id);

    /**
     * 批量删除
     *
     * @param idList
     */
    Integer batchDelete(List<String> idList);

    /**
     * 根据tableId集合批量删除
     *
     * @param tableIdList
     * @return
     */
    Integer deleteByTableIds(List<String> tableIdList);

    /**
     * 修改
     *
     * @param params
     * @return
     */
    Integer update(GenTableColumnSaveParam params);


    /**
     * 详情
     *
     * @param id
     * @return
     */
    GenTableColumnVo findById(String id);

    /**
     * 根据业务表ID查询业务表字段集合
     *
     * @param id
     * @return
     */
    List<GenTableColumnVo> findByTableId(String id);

    /**
     * 根据数据表名查询数据库表字段-列表
     *
     * @param tableName
     * @return
     */
    List<GenTableColumnVo> findDbTableColumnByTableName(String tableName);

    /**
     * 根据数据表名查询数据库表字段-列表
     *
     * @param tableName
     * @return
     */
    List<TableColumnVo> findTableColumnList(String tableName);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<GenTableColumnVo> findAll(GenTableColumnSearchParam params);

    /**
     * 列表-分页
     *
     * @param params
     * @param current
     * @param pageSize
     * @return
     */
    IPage<GenTableColumnVo> findAll(GenTableColumnSearchParam params, Integer current, Integer pageSize);

}
